home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #15 / Monster Media Number 15 (Monster Media)(July 1996).ISO / bbs_misc / tg_300.zip / WHATSNEW.300 < prev   
Text File  |  1996-06-18  |  72KB  |  1,298 lines

  1.  
  2.                   Telegard Bulletin Board Software, v3.00
  3.                        Revision History Documentation
  4.  
  5.                    Copyright (C) 1995,1996 by Tim Strike
  6.                             All Rights Reserved.
  7.  
  8.  
  9.                     3.00 Release (final) - June 18, 1996
  10.  
  11.                             Installation Notes:
  12.  
  13.         Please refer to the documentation INSTALL.DOC for instructions on
  14.         how to upgrade from previous versions of Telegard, or how to 
  15.         install Telegard for the first time.  It is *imperative* that you
  16.         follow these instructions!
  17.  
  18.                                Release Notes:
  19.  
  20.         This version is quite a huge jump in terms of magnitude of the
  21.         items required to update (language & scripts).  The reasons are 
  22.         two fold; it's been 3 months since the last Telegard release 
  23.         (2.99.g4) and the changes made since then are quite big (this
  24.         WHATSNEW.300 file contains only the changes from G4 to 3.00, and
  25.         is as big as the file for G2 to G4).
  26.  
  27.         Please review this *entire* file, paying special attention to the
  28.         languages and scripts sections.  You *will* need to change your
  29.         scripts for this version to properly run (sorry).
  30.  
  31.                           Changes planned for 3.1:
  32.  
  33.         While these changes outline those things that I intend on changing 
  34.         for 3.1, they are not finalized -- other items may be changed, and 
  35.         these items may not be changed.
  36.  
  37.                 (a) Scripting language overhaul
  38.                 (b) File description storage overhaul
  39.                 (c) Scan record overhaul (faster and more efficient)
  40.                 (d) User-ID fields to 4 characters (nn-nnnn to nnnn)
  41.                     (still base 36 - leaving 1,600,000 users possible)
  42.                 (e) Text date fields from MM/DD/YY to MM/DD/YYYY
  43.                 (f) Further multinode support (possibly node-to-node chat)
  44.  
  45.         The remainder of my plans for 3.1 have not been decided upon.
  46.  
  47.         IMPORTANT CHANGES
  48.  
  49.             + Password encryption (PWE) is now available.  Here is how the 
  50.               system works . . . Telegard stores a CRC32 value for the 
  51.               input password *regardless* of the current settings for the 
  52.               password encryption.  If PWE is enabled, then the password 
  53.               text is not stored, otherwise it is.  With this system, the 
  54.               CRC32 is then always used for password verification, and the 
  55.               toggle only controls the storage of the text password.
  56.  
  57.               Because of the design of this system, this feature can be 
  58.               toggled off -- and on again -- without loss of user records. 
  59.               Caveat: If the user forgets, tough -- the CRC32 can't rebuild 
  60.               the password text if PWE is enabled-then-disabled if the user 
  61.               can't remember the password which matches the stored CRC32).
  62.  
  63.               Here is how it works (the low down).  If PWE is enabled, all 
  64.               the stored password text is cleared, leaving only the CRC32 
  65.               value.  The user inputs the password, and the CRC32 is 
  66.               checked, and if equal, the passwords match and the user can 
  67.               login.  If PWE is disabled *after* it has been enabled, the 
  68.               first time that a user logs in with the correct password 
  69.               (matches CRC32), that password will be stored back into the 
  70.               user record (and voila, the text is back, woohoo!).
  71.  
  72.               The password will only be displayed in the user editor (a) if 
  73.               PWE is disabled, and (b) if the stored CRC32 matches the CRC32 
  74.               of the password text . . . otherwise, the password text is non 
  75.               existent (PWE enabled) or is damaged (CRC32s don't match).
  76.  
  77.               To enable/disable these flags, you must use the utility
  78.               USERS utility (Version 1.10+) with the option "PWE".  This 
  79.               will make the necessary modifications to the user file.  
  80.               PLEASE DO NOT WRITE UTILITIES TO TOGGLE THIS FLAG, AS YOU MAY 
  81.               DAMAGE YOUR USER FILES BEYOND RECOVERY.
  82.  
  83.               If utility authors are going to change the PW text, they must
  84.               also update the CRC with the correct CRC32 routine (start 
  85.               with 0xFFFFFFFF as the initial value).  Remember password
  86.               input is entirely in uppercase, and the CRC32 is only stored 
  87.               for the actual text string, not the length byte (i.e. starts
  88.               at pw[1] instead of pw[0]).  If PWE is enabled, then only the
  89.               CRC should be saved to the userfile.
  90.  
  91.               This method closely (well, almost identically) mimics the
  92.               method used in RemoteAccess.  Infact, I waited until 2.50 was
  93.               officially released to see how successful it would be.  It's
  94.               not an original idea, but it was an often requested feature.
  95.  
  96.         LANGUAGES
  97.  
  98.             * Please see the file LANGUAGE.300 for the changes to the 
  99.               language files for 3.0.  The language changes were fairly
  100.               significant (the cleanup the text therein is likely done
  101.               now . . .)
  102.  
  103.          UTILITIES
  104.  
  105.             + USERS.EXE now sorts deleted users to the END of the user
  106.               data area so they are all grouped together.  Sorting within
  107.               the deleted users group works the same as non-deleted users
  108.               (by security then by alphanumeric sort).
  109.  
  110.             + MAKELANG has been updated to 1.11.  This version adds several
  111.               different commands which can be helpful in finding problems 
  112.               or changing your language text.
  113.  
  114.                    (i) This version can create a text dump of the language 
  115.                        file, without MCI codes and without colour/comments.  
  116.                        The file can then be be used to spell check without 
  117.                        hassle (well, without as much hassle). It's option 
  118.                        -D (after the filename).
  119.                   
  120.                   (ii) This version can also update language text 
  121.                        automatically with the output file (language.NEW) a 
  122.                        merge between two languages. Added lines will be 
  123.                        written with ;!ADDED preceeding, removed lines will 
  124.                        be commented out with ;!REMOVED preceding, and 
  125.                        updated lines will be double listed with ;!UPDATED 
  126.                        preceding.  This is not useful for most SysOps since 
  127.                        heavy language modification will result in a large 
  128.                        number of duplicate lines, so I suggest using 
  129.                        CMPRLANG and the listing in LANGUAGE.UPD instead.  
  130.                        The commandline would be "MAKELANG lang-1.txt -M 
  131.                        lang-2.txt" where lang-1.txt is the language to be 
  132.                        updated from lang-2.txt (which should be our release 
  133.                        language, i.e. ENGLISH.TXT).
  134.                        
  135.                  (iii) This version gives a more indepth warning message.
  136.                  
  137.                   (iv) This version adds another language file compilation 
  138.                        method was added for fks Utilities (TCR, News, etc) 
  139.                        . . . information will be distributed with these 
  140.                        programs.
  141.         
  142.         AREAS
  143.         
  144.             * Area managers (file & message) are now paged.  The length of 
  145.               the page is determined from the online user (WFC=SysOp 
  146.               Account) and adjusted accordingly so that no other page pause 
  147.               should have to take place.
  148.  
  149.             * Internally renamed "base" to "area" for all prompts and log
  150.               entries.  Combined with the update to the language files, 
  151.               "bases" are now "areas" (which is more intuitive).
  152.  
  153.             * Semaphore files TGMBASE.NOW (message areas modified) and 
  154.               TGFBASE.NOW (file areas modified) are now named TGMAREA.NOW 
  155.               and TGFAREA.NOW respectively.
  156.  
  157.             * Area compression is now re-enabled -- it now comes with a 
  158.               lengthy warning as well.
  159.  
  160.         MESSAGES
  161.  
  162.             * More intuitive Internet Email/Newsgroup setup -- including 
  163.               both as options in the area type setup (old options were 
  164.               Local, Netmail and Echomail).  Telegard automatically toggles 
  165.               UUCP on for these new "types" and describes the areas as 
  166.               'Internet' or 'Newsgroup' accordingly.  No structural changes 
  167.               were made for this version.
  168.  
  169.             * Waiting mail scan will now skip areas toggled as Newsgroups 
  170.               (UUCP+Echomail).  Waiting mail scan now also uses the index 
  171.               files (*.SQI/*.JDX) to determine if mail is waiting for the 
  172.               current user in any given area -- this scan is inherently 
  173.               faster than the previous scan because it's all done with 
  174.               crc/hash values and requires little more than a quick memory 
  175.               scan for areas and only one disk read for each area (instead 
  176.               of multiple) - the buffer works for 8191 JAM messages or 5461 
  177.               Squish messages, and automatically recycles itself if areas 
  178.               contain more messages.  Please let me know if you notice the 
  179.               speed difference . . . I'll keep working on it too. 
  180.  
  181.             + Added subcommand to menu item MW for listing areas with new 
  182.               messages; i.e. using menu command MW with options L will 
  183.               generate a list of message areas with new messages.  If the
  184.               option is P instead of L, the user will be prompted to read
  185.               the messages if any are found . . .
  186.  
  187.             * Nodelist browsing problems should now be fixed once and for 
  188.               all -- my terminals and the local screen translate NULL (#0) 
  189.               as a space character, whereas most terminal programs ignore 
  190.               the character, causing a jumbled column listing.
  191.  
  192.             * Squish control information is now correctly read and 
  193.               processed by Telegard from both the control area (as it was 
  194.               skipping before) and the message text (as it was before).  
  195.               During this process, I fixed (a) MSGID processing, and (b) 
  196.               extra blank lines appearing at the end of a message after 
  197.               origin lines.
  198.  
  199.               Telegard now uses the MSGID as follows (this was how I 
  200.               designed it for gamma-4, but it was not working properly) -- 
  201.               the MSGID is first used to determine the ORIGIN address of 
  202.               the message.  If a MSGID field is *not* there, and the header 
  203.               origin address zone is not zero, that address is used.  If 
  204.               none of the above finds the address properly, it will come 
  205.               out blank . . .
  206.  
  207.             * Replying to messages in private email from a public area will
  208.               (a) no longer prompt to delete the message from the public 
  209.               area, and (b) no longer send a 'REPLIED TO' receipt.
  210.  
  211.             + Added antiquated UUCP support (UUCP in the header, TO: name
  212.               in the message text).  Most gateways (useful, up-to-date 
  213.               gateways) no longer require this option.  However, if needed,
  214.               it is now supported.
  215.                 
  216.             + Added QuickQuote features which automatically assume RANGE
  217.               types, allow up to 9 lines to be quoted at once (don't ask
  218.               for any more -- I won't add support because you'll notice the
  219.               software which DOES support such quoting ranges end up with
  220.               hundreds of lines of quoted text!).  This is faster and 
  221.               perhaps more intuitive for some.  Upon successful range 
  222.               selection, text input mode is automatically re-enabled.
  223.  
  224.             * Reworked the squish code to fix up a number of inefficiencies
  225.               and problems;
  226.                    (a) The frame length of free frames will be maintained
  227.                        so they can be used efficiently.  This *should* help
  228.                        with some space usage problems when the areas are
  229.                        dynamically packed by Telegard.
  230.                    (b) The control information (kludge) is now written 
  231.                        properly into the control area of the header instead 
  232.                        of the message text.
  233.  
  234.             * Hitting '-' to goto the previous message should now skip over
  235.               deleted messages until it finds the previous available message.
  236.  
  237.             * Kludge lines now work as in 2.7 (I changed my mind on how I
  238.               wanted to implement them).  Kludge lines buried within the
  239.               message text in Squish areas (i.e. invalid lines) and SEEN-BY
  240.               and PATH lines in Squish areas will be shown in the TEARLINE
  241.               colour.  Other kludge lines, and all JAM kludge lines, will
  242.               appear at the top of the text in the kludge line colour.  The
  243.               toggle now works until it's turned *off* (meaning, once you
  244.               turn kludge line viewing on, each message you view will have
  245.               the kludge lines until you turn them off again).
  246.  
  247.             + Cross posting of messages has been finished.  Messages which
  248.               have either files or carbon copies attached with them can *not*
  249.               be cross posted.  Messages can only be cross posted into
  250.               PUBLIC local or echomail areas.  Telegard will properly update
  251.               origin lines, kludge lines, MSGID, etc for each cross posted
  252.               message.  A maximum of 10 cross posted areas has been set 
  253.               internally, and the cross posting ACS is determined by a new
  254.               ACS setting (see Config.Messages.Access.CrossPosting).  Cross
  255.               posted areas will be displayed at the top of the message in
  256.               each of the areas cross posted into (and the original).
  257.  
  258.             + Carbon copying messages has been finished.  The message must
  259.               be posted from either board=0 or a netmail area.  A maximum
  260.               of 20 cross posted messages has been set (internally), and 
  261.               the carbon cop ACS is determined by the ACS setting (see
  262.               Config.Messages.Access.CarbonCopy).  Like cross posting, all 
  263.               CC'd users are added to the message text (i.e. there is no 
  264.               blind CC: option in Telegard), and origin lines and kludges 
  265.               lines are properly adjusted.
  266.  
  267.             * Messages with more than one file attach should now have
  268.               all the files available for transfer (a count variable was
  269.               not being reset).
  270.  
  271.             * After sending file attaches, if the last transfer was OKAY,
  272.               and the message is TO the online user, the files will be
  273.               prompted for deletion.
  274.  
  275.             * Completely reworked the header initialization code (i.e.
  276.               to/from/subj headers) and while I have attempted to ensure
  277.               nothing went wrong, please let me know if it did.  The code
  278.               is now more compact, and indeed, easier to follow as well
  279.               (this was more important from my point of view . . . )
  280.  
  281.             * Posting messages from a kludge-line generating FSE in a
  282.               "Dear Abby" area with the "Real Name" option (3) should
  283.               no longer cause problems -- my fault folks -- my oversight!
  284.  
  285.             * Replying to messages in internet email areas now sends
  286.               prompt 1126 instead of the standard netmail reply prompt.
  287.  
  288.             * Copying and moving messages now reproduce the *identical*
  289.               message (header information, etc.) except with the following
  290.               modifications:
  291.  
  292.                         (a) Filtered (ANSI, etc removed per area setting)
  293.                         (b) -- forwarded message -- text
  294.                         (c) Header information, if requested
  295.                         (d) PRIVATE setting if appropriate (pvt only area)
  296.                         (e) Echo/Net/Local flag as appropriate
  297.  
  298.               All other status bits, kludge lines, origin lines, etc. are
  299.               kept as is.  Messages being sent from other systems will *not*
  300.               be re-echoed, local status bit will not be toggled, date will
  301.               not be changed, etc.  If you want these features, FORWARD the
  302.               message instead.
  303.  
  304.             * After forwarding/copying a message, the next message will
  305.               not automatically be loaded (i.e. you will remain at the
  306.               present message).  The message header/text will also be 
  307.               intact as it should be (without the forwarding text).  Moving
  308.               messages will still move to the next message (the moved 
  309.               message is toggled as deleted).
  310.  
  311.             * QWK header initialization now uses the code the regular 
  312.               posting does -- this should tighten up the header generation
  313.               and make the messages a little more consistent (i.e. they
  314.               will contain the proper MSGID (they didn't before), as well
  315.               as any other kludge lines added by the software.
  316.  
  317.             * Posted messages will now have the following tear/origin
  318.               lines as appropriate:
  319.  
  320.                      ~~~ Telegard/QWK v       { QWK, local or no tear lines }
  321.  
  322.                      --- Telegard/QWK v       { echomail & tear lines, QWK }
  323.                       * Origin: ...
  324.  
  325.                      ~~~ Telegard v           { internet email/newsgroup }
  326.                      ---
  327.                       * Origin: ...
  328.  
  329.                      --- Telegard v           { echomail/netmail }
  330.                       * Origin: ...
  331.  
  332.             * Users should no longer be able to send email to their own
  333.               accounts.  SysOps (with sysop access for that area) on the 
  334.               other hand now *will* be able to send email to their own 
  335.               account (for various reasons) -- I had a variable reversed.
  336.  
  337.             + AKA matching has been implemented within Telegard; the AKA
  338.               matching is done for each of the defined addresses (AKA
  339.               matching *must* be setup in the address configuration).  This
  340.               means that a *single* netmail area can be used, and that the
  341.               address will be matched when the message is saved.  The
  342.               matching is done as follows:
  343.  
  344.                   (1) Search for matching AKA ZONE:NET entry, and use
  345.                       the *first* associated address if found.
  346.                   (2) If not found, search for matching AKA ZONE:0 entry
  347.                       for the outbound address zone (matches ZONE and
  348.                       *all* nets in that zone), and use the *first*
  349.                       associated address if found.
  350.                   (3) If not found, search for matching ZONE:NET address,
  351.                       and use the first one found.
  352.                   (4) If not found, search for matching ZONE address, and
  353.                       use the first one found.
  354.                   (5) If not found, use the primary address (address 1).
  355.  
  356.               Of important note, this will *only* work for Netmail areas.
  357.               The area must also be configured for AKA matching -- if not,
  358.               the address used will be as defined regardless of the 
  359.               outbound address (this can be used if you wish to separate 
  360.               the areas and use a specific address for each area).
  361.         
  362.               ALSO OF IMPORTANCE: This feature makes use of the data files
  363.               as they were defined in the DEVEL300 package.  However, they
  364.               use a setting (=0) which is likely not recognized by the
  365.               current offline mail doors.  Thus, if you use either of these
  366.               doors (TGwave 1.12 or prior, Bluewave 3.11 or prior) it is 
  367.               suggested that you do not enable AKA matching for any of your
  368.               areas until updated versions of the doors are available which
  369.               support the new files in the DEVEL301 package.
  370.  
  371.             + Added ECHOMAIL.JAM and NETMAIL.JAM support for all posted
  372.               messages.  To turn this feature on, define the path for
  373.               the files in the Configuration.MessageSystem.Echolog path.
  374.               These files can be used to do a QUICKSCAN with your favourite
  375.               JAM tosser (I still suggest a FORCED FULL scan at least once
  376.               daily).  Naturally they only contain messages posted in
  377.               echomail or netmail JAM areas . . . ;)
  378.  
  379.             * TGMSCAN.NOW has been replaced with four separate semaphore 
  380.               files dependant on the type/format of the posted message:
  381.  
  382.                         * ECHOMAIL.TGJ  (JAM, Echomail)
  383.                         * ECHOMAIL.TGS  (Squish, Echomail)
  384.                         *  NETMAIL.TGJ  (JAM, Netmail)
  385.                         *  NETMAIL.TGS  (Squish, Netmail)
  386.  
  387.               (NOTE: for semantics, newsgroups are set as ECHOMAIL, 
  388.               internet email as netmail).  The semaphore files are touched
  389.               when the message is WRITTEN to the area, and no longer at the
  390.               end of the BBS session (logout).
  391.  
  392.             * Fixed importing text from the FSE, or when formating Squish
  393.               text so that initial 1st line characters are not lost.
  394.  
  395.             + Internet email areas now force the internet address to be
  396.               of the form user-name@server-name.  If the server-name is
  397.               not included (i.e. 4ts2, 4ts2@) or if the user-name is not
  398.               included (@qlink.queensu.ca) the address will be rejected.
  399.               This is *not* active for replies, since some replies are
  400.               sent to UUCP, and since if the message arrived from an 
  401.               address, it should be able to go back from whence it came!
  402.  
  403.             * Users who do not have enough SL or ACS (restriction flags, 
  404.               etc.) to post a password inquiry message will be informed of 
  405.               such, and then hungup.  Private posting ACS, as well as the
  406.               Email/Post restriction flags all affect this.
  407.  
  408.             * Telegard now has two distinct quoting methods - SmartQuote 
  409.               enabled or disabled.  If ENABLED, Telegard will wrap lines of 
  410.               70 characters or more together to create smooth flowing text.  
  411.               If DISABLED, Telegard will truncate lines that are too long 
  412.               to fit onto one line.  Both should create "smoother" quoting 
  413.               than the previous zig-zag production.
  414.  
  415.             * I believe I may have nailed the "*" Anonymous toggle option
  416.               w.r.t. JAM areas -- Squish areas have another problem in 
  417.               relation to that, something I'm in the process of fixing.
  418.         
  419.             + New menu command M! which will provide a listing of message
  420.               area traffic (i.e. low & high message numbers, total messages,
  421.               local messages, % local, active days, message/day).  Useful
  422.               for quickly judging those echomail areas to get rid of (0%
  423.               local & high daily traffic, low daily traffic, etc.)
  424.  
  425.             * Reworked the error code return procedures, such that DOS
  426.               ERRORS and SWAPPING ERRORS will be the only cause of the
  427.               internal FSE loading up after a failed external FSE.  If the
  428.               FSE returns with an errorlevel <> 0, then the message will
  429.               simply not be saved (i.e. aborted) -- useful for those FSE
  430.               versions which return errorlevel=1 for aborted messages.
  431.  
  432.             * JAM messages with control fields (subfield) lengths longer 
  433.               than 8K will be truncated at that point - for Fidonet 
  434.               messages, this is of no *real* concern (the only thing which
  435.               could cause it to hit that length would be an extreme amount
  436.               of message routing with lots of ^aVIA lines).  Internet 
  437.               routed messages *can* cause this to happen, especially those
  438.               silly-go-lucky internet mail readers which append a CC: for 
  439.               hundreds of users in a blind (and shall I say extremely 
  440.               negligent) manner.
  441.             
  442.             + Added Confirm FSE Save option (if enabled, will prompt as
  443.               usual -- if disabled, will just automatically save the 
  444.               message (well, move to the next step (cross-post, etc.).
  445.  
  446.             * Deleting users while editing them from a message should no
  447.               longer lose the last-read & scan tables for that message 
  448.               area.  With enough information, I've been able to track this
  449.               one down (so don't be brief in your bug reports!)
  450.  
  451.             * Message header should be properly updated when files attaches 
  452.               are successfully transferred/moved.
  453.  
  454.             * With SmartQuote disabled, Telegard was getting hung up on 
  455.               soft-CR and erroneously removing lines.  Telegard will 
  456.               truncate text not wrapped in soft-CR's when the text to be 
  457.               truncated is less than 10 characters in length.
  458.  
  459.             * Fixed up some of the message area code with regards to
  460.               skipping in private areas/private messages -- messages which
  461.               are private (area or message) and are not to/from the online
  462.               user will always be skipped in Waiting, ToUser or FromUser 
  463.               scans, and will be skipped for Non-SysOp ACS users otherwise.
  464.               I *think* I now have the logic properly defined.
  465.  
  466.             + Telegard now uses specific netmail areas for specific AKA's.
  467.               There are a few things to note with respect to this new 
  468.               method of matching netmail areas:
  469.  
  470.                   (a) UUCP Netmail and Regular Netmail should be separated -
  471.                       such that you have a Regular Netmail, and an Internet
  472.                       Email Area (UUCP Netmail).  If you use the same net
  473.                       address for both regular netmail and UUCP mail, you 
  474.                       will need to define two AKAs the same with different
  475.                       netmail areas, and the correct AKA# in your message
  476.                       areas.  (I personally use a point address for my
  477.                       UUCP Newsgroups and Internet Email, specifically to
  478.                       avoid confusion).
  479.  
  480.                   (b) Telegard does AKA matching *after* checking the 
  481.                       netmail area.  If the message area uses AKA#3, then
  482.                       Telegard uses the netmail area for #3, then checks
  483.                       the AKA match setting for that netmail area.  It does
  484.                       *not* IOW, match aka's, then use the appropriate 
  485.                       area -- it is assumed the specific echomail 
  486.                       conference in use is using the AKA with the 
  487.                       appropriate outbound mail settings.
  488.  
  489.                   (c) Replies to messages *in* a netmail area will use the
  490.                       current area for those replies.
  491.  
  492.             ? Want to hide your Email area, but still have it accessible to 
  493.               all your users for reply/reading with the email functions? 
  494.               Just add it to a dummy conference (C! for example), and it 
  495.               won't show up in area listings, but it will still be 
  496.               available for all regular email functions!  (a handy tip from 
  497.               your friendly TG users on TG_SUPPORT that even I wasn't aware 
  498.               could be done . . . )
  499.  
  500.             * Message area compression always starts at area #1 -- The 
  501.               email area, if the user has ACS, is always area #0.  This
  502.               means that using the above method to 'hide' the email area
  503.               will leave all other areas starting as area #1 (a helpful
  504.               solution from your friendly TG programmer . . . )
  505.  
  506.             * Waiting (Personal) mail scan should now allow an abort
  507.               and properly pay attention to it. ;)  It should now also 
  508.               start at the correct first message, instead of the first
  509.               message after the last-read pointer.
  510.  
  511.             * Hitting '-' when reading messages in a non-reverse mode
  512.               while at the first message, will no longer end the scan.    
  513.                 
  514.             + Netmail will be prompted for deletion after replying.
  515.               Netmail can be forced deleted (as in email) with the new
  516.               flag ForceNetmail (see OTHER section).
  517.  
  518.             * Origin lines will be truncated to 79 characters.  The origin 
  519.               line setup in Telegard was left long enough that short node 
  520.               addresses could use the full length.  However, some longer 
  521.               addresses would incorrectly wrap with the same origin line. 
  522.               Telegard now truncates that line (the origin text portion) if 
  523.               adding the node number would create too long a line.
  524.                 
  525.             * JAM message bases now properly support the LOCK_FIRST_BYTE 
  526.               when writing messages back the file.  Note the following 
  527.               consideration (important) when using JAM:
  528.  
  529.                   Do *not* pack your message bases while there are active 
  530.                   nodes . . . If the base happens to be open and being read 
  531.                   by a user, the packer will likely open the file in 
  532.                   ReadWrite+DenyAll mode, which when Telegard attempts to 
  533.                   read the next message will crash the online node.
  534.  
  535.                   (same goes for Squish as well . . . )
  536.         
  537.             * Telegard will only prompt if the message is to be deleted if 
  538.               the original base was either base #0 or was a netmail area. 
  539.               This will stop the RT#100 and asking to delete messages from 
  540.               a public base after they have been replied too . . .
  541.  
  542.             + New message command MT to automatically post a file (from 
  543.               default TEXT path only).  The required parameters are 
  544.               area#;filename;subj;from;to;toaddr, where:
  545.  
  546.                    area#        Post to area#
  547.                    filename     Filename to post
  548.                    subj         Subject (blank=filename)
  549.                    from         Post from user (blank=SysOp)
  550.                    to           Post to user (blank=Online User)
  551.                    toaddr       Netmail address (if netmail area)
  552.  
  553.               This is an internal routine that I'm making available for 
  554.               SysOps to use in menus/scripts.  Please note that because of 
  555.               the limited menu options space, you can only have a combined 
  556.               total of 50 characters (running from a script will give you 
  557.               ~250 characters).  MCI translations will take place in the 
  558.               routines for the subject, from and to fields, as well as the 
  559.               imported message text.  For example:
  560.  
  561.                  MT 0;NEWUSER.TXT;Welcome New User!
  562.  
  563.               Will post the file \text\NEWUSER.TXT in the email base, with 
  564.               the subject "Welcome New User!", from the SysOp (no from), to 
  565.               the active Online User (no to/toaddr).
  566.  
  567.                  MT 51;TGSUPP.TXT;ELU MOD;Tim Strike;Echolist;1:201/0
  568.  
  569.               Will post the file \text\TGSUPP.TXT in the netmail base (#51 
  570.               on my system), with the subject ELU MOD, from Tim Strike, to 
  571.               Echolist with the netmail address 1:201/0.
  572.  
  573.                  MT 0;ECHOSTAT.TXT;;;Tim Strike
  574.  
  575.               Will post the file \text\ECHOSTAT.TXT in the email base, with 
  576.               the subject ECHOSTAT.TXT (no subj), from SysOp (no from), to 
  577.               Tim Strike.
  578.  
  579.               There are tonnes more things you can easily do, just remember 
  580.               to keep things simple.  If you need something more complex, 
  581.               may I suggest an external autoposter . . . :)
  582.  
  583.             * Replying to the original poster in a netmail area would 
  584.               result in the incorrect address being used (oops).
  585.  
  586.          FILES
  587.  
  588.             * CD-ROM support should now work again.  The labels off CD-ROM
  589.               should be the label listed with a DOS directory listing -- no
  590.               difference from that used by Telegard.  Audio CD support is
  591.               almost ready (since Telegard currently crashes OS/2 and 
  592.               certain drivers, it needs to be fixed soon).
  593.             
  594.             * Timeleft will now be updated at the file tagging prompt, 
  595.               instead of waiting util the user hits the next menu prompt.
  596.  
  597.             * File size (~&3) now puts a leading zero for decimal point
  598.               numbers < 2 characters.
  599.  
  600.             * Fixed bug of waiting for description after a user has hungup;
  601.               it would correctly process the first file if it hadn't 
  602.               already bee done, but would prompt on any successive files.  
  603.               If it occurs now, it should just boot past and dequeue all
  604.               the files automatically (incl. testing).
  605.  
  606.             * File manager will not attempt to create directories on CD-ROM 
  607.               detected media (for those who type the paths from their CD's 
  608.               in wrong . . . :). 
  609.  
  610.             * Conversion command will not prompt for CD-ROM area selection, 
  611.               but rather will just avoid CD-ROM areas (for due reason).
  612.  
  613.             * If "Search All" is selected as NO, then the "Search CD-ROM" 
  614.               prompt will not be given at all (why bother, it's one area).  
  615.               If you really mean to search only one area, well . . . ;)
  616.  
  617.             * 1,000,000 bytes is now considered a meg in terms of the file 
  618.               section -- this isn't true, but it will suffice for the 
  619.               display purposes of the file system.
  620.  
  621.             * Cosmetic changes to /U command (fixes pause overwriting scan)
  622.  
  623.             * ?:<field> input text is now definable in the language file
  624.               (it was hardcoded to `09?:`1F previously).
  625.         
  626.             * Telegard now handles highlighting text/colour restoration
  627.               internally.  Searching for text that is a part of your
  628.               display line should no longer highlight that text.
  629.  
  630.             * Files which fail the virus/integrity check were properly 
  631.               marked as 'unavailable', but the users were still erroneously 
  632.               given credit for the failed file (Thanks Keith -- I did 
  633.               eventually find the problem).
  634.  
  635.             * Unvalidated files will now always show in the newscan to 
  636.               users with SysOp ACS.  This is how it used to be, and is 
  637.               infinitely handy . . .
  638.  
  639.             * The file listing now displays the files (and the appropriate 
  640.               lines) in the following order (using the first logical one):
  641.  
  642.                    1. 'Failed' files           3. Offline files
  643.                    2. Unvalidated files        4. Normal listing
  644.  
  645.               This should make it more apparent when a file was failed, 
  646.               instead of having to first validate the file before the failed
  647.               tag would appear.
  648.  
  649.             + File listings can now display the uploader name/date.  This 
  650.               is controlled via the SystemConfig.FileSystem.ListUploader 
  651.               toggle, and secondly by the SeeNamesACS for each area (if not 
  652.               met, the line will not be sent).
  653.  
  654.             * Unlisted uploads (not in queue) are now sent to the default
  655.               UL area if defined, and to the SysOp area if not defined.
  656.               The default UL area is set via System.Config.FileSystem.UlArea.
  657.        
  658.             * Just deleted files will not appear as 'invalid' when trying 
  659.               to re-upload the files.  I was foolishly checking some flags
  660.               when exact extension matching as off.
  661.  
  662.             * Offline files will no longer be given tagging numbers.  This 
  663.               saves the tagging numbers for active files only.  The field 
  664.               is just blank for offline files.
  665.  
  666.             * # of tagged downloads MCI is actually ~FQ instead of ~FG.
  667.  
  668.             + Minimum upload space check has been re-enabled.  Somewhere in
  669.               my rewrite of the file sections, we lost the check for drive
  670.               space . . . it should now properly deny uploads if less space
  671.               than configured is detected (on the upload drive).
  672.  
  673.             * I removed the validate-all-files variable (which used to
  674.               indicate whether incoming files were automatically validated)
  675.               and included that code as part of auto-validate and credit
  676.               users (which used to read autovalidate ul ACS, but only 
  677.               updated the users credit).  This was done to alleviate some
  678.               confusion, and hopefully -- hopefully -- fix some bugs.
  679.  
  680.             * Queued file points were not being added up - and thus, only
  681.               newest file was checked for available points.  If all the
  682.               files were within the ratio, all the files could be 
  683.               transferred.  This was incorrect -- queued files are counted.
  684.  
  685.             * Fixed non-archive auto-uploading (which would print files
  686.               on the same line) -- it now prints the "default" description
  687.               instead.
  688.  
  689.         SCRIPTS
  690.  
  691.             * Variable substitution will now work in get input mask.
  692.  
  693.             + Added TRANSLATE and RANDOM functions - see SCRIPT.REF.
  694.  
  695.             + Included BDAYCHEK.SCR which can be run, as an example, from 
  696.               your LOGON.SCR file . . . it randomly checks the Birthdate of 
  697.               the users and hangs them up if they get it wrong . . .
  698.  
  699.             * Telegard now reads the file as READONLY + DENYNONE in
  700.               binary format rather than text format.  This will hopefully
  701.               stop the OS/2 access denied problems, as well as end some of
  702.               the 103/105 problems some multinode environments have 
  703.               encountered.  Please note, that because text files are 
  704.               inherently faster to process in BP, I have had to write some
  705.               buffering routines.  While I've tested them and they *do*
  706.               work, there could be minor bugs in the routines.
  707.  
  708.             * IF/IFNOT statement handling has been changed -- DRASTICALLY.
  709.               Please test these functions carefully, as my logic, while
  710.               it looks good on paper and in code may not work as well in
  711.               practice.  Putting JUMP statements in IF/IFNOT statement 
  712.               blocks should no longer cause any RT202 problems -- just be
  713.               careful of where you put your :LABELs.  You can now only have
  714.               up to 20 nested IF/IFNOT statements.
  715.             
  716.             * The script is now recursive to only one level deep.  The only
  717.               code that is recursive beyond this are the ACS, KEYPRESSED and
  718.               FILEEXIST statments.  Be careful of how many of these 
  719.               statements you link together (as you may find significant 
  720.               problems if you link too many together) -- for instance:
  721.               
  722.                    ACS S255 ACS FA GOTO PASSED  ; is incorrect, and dangerous
  723.                    ACS S255FA JUMP PASSED       ; is correct
  724.               and
  725.                    ACS S255 KEYPRESSED FILEEXIST JUMP LEVEL 
  726.                    ; is dangerous because it nests 3 functions
  727.               
  728.             * Labels can now only be 12 characters in length.  Labels are
  729.               expected at the first level, not buried within 
  730.               IF/IFNOT...ELSE...ENDIF statements.  If labels are buried, 
  731.               they will cause signficant problems.
  732.  
  733.             * Removed BEGIN/END blocks.  I decided this would remove *some*
  734.               of the 202 errors that were happening (and if 202 didn't come
  735.               up, the system *might* hang).  BEGIN/END blocks with IF/IFNOT
  736.               statements are not required, and other statements can be
  737.               worked around differently (if you need help, mail me).
  738.  
  739.             + Added JE (Jump Equal) and JNE (Jump Not Equal) to the SCRIPT
  740.               commands.  They are used to explicitly replace the following 
  741.               type of construction, which *will* cause problems:
  742.  
  743.                         IF "$OPTION$" "A"
  744.                            GOTO opta
  745.                         ENDIF
  746.  
  747.                         JE "$OPTION$" "A" opta
  748.  
  749.             * GOTO has been renamed JUMP.  This coincides with the JE/JNE
  750.               statements, and also forces people to look at their scripts
  751.               for the proper :LABEL format now expected.
  752.               
  753.             + CALL/RETURN functions have been added.  CALL stores the 
  754.               current position and then jumps to a label.  RETURN returns
  755.               to the last CALL position and continues executing from there.
  756.               You can only have 10 nested CALL statements at any time.
  757.               
  758.             + Added ELSE construct to the IF statement.  The correct method
  759.               of use would be:
  760.               
  761.                  IF/IFNOT "test1" "test2"
  762.                     <statements>
  763.                  ELSE
  764.                     <statements>
  765.                  ENDIF
  766.  
  767.             * Input of a CHAR will now accept ^M (ENTER), ^[ (ESC), ^_ 
  768.               (SPACE) and ^^ (^).  If you want to include ^ in your "valid" 
  769.               characters for a CHAR, you must use ^^.  The IF statements 
  770.               will also check this; so if you want to use ^ in your IF 
  771.               statements, you must use ^^.  Thus, doing IF "$INP$" "^[" 
  772.               will check to see if the input character was ESC.
  773.  
  774.             * More of the login sequence was moved from the actual code 
  775.               into the LOGON.SCR file.  Please review this file for changes
  776.               and make the necessary changes to your script (short msg,
  777.               voting, mail check, etc. are all now part of the script).
  778.  
  779.             * FILEEXIST/ERASE now append /temp/ to the filename if a path 
  780.               is not given.  This is used to test/erase files in the 
  781.               temporary directory, such as those created with FILECREATE 
  782.               (which when a path is not given, defaults to /temp/).
  783.  
  784.         MULTINODE
  785.  
  786.             * NODEACSn file renamed to NODEAnnn for support of more nodes
  787.               on this file (1-9 previously, now 1-999).
  788.  
  789.             + I finished the node phone option.  It is now displayed with
  790.               the MCI code ~CF (the primary phone number is still displayed
  791.               with the old MCI code -- this one changes depending on what
  792.               node is in use, and what the nodephone setting is defined as).
  793.               This is one of the two MCI codes which can be used in the
  794.               origin line (~CN being the other).
  795.               
  796.             * Fixed bug of last node always being "unused".
  797.         
  798.         MENUS
  799.  
  800.             + Added option to change the Who's Online text when menus are 
  801.               loaded -- if set to NULL (blank), then whatever is currently 
  802.               on the status is left, otherwise it's updated to the text 
  803.               stored for each menu.  Thus, you can create status of "File 
  804.               Menu", "Main Menu", "Message Menu", etc. without having to 
  805.               link a FIRSTCMD for each of those menus . . . 
  806.  
  807.             + Added menu command OY, to add VOTING QUESTIONS (this was an
  808.               oft requested feature, and with the addition of my init vote
  809.               code, a really _easy_ feature to add).
  810.         
  811.             * Menu editor uses More? pausing when listing commands.
  812.  
  813.             + Added L; pre-door command to turn off logging of the door
  814.               (door use & login time, logout time).
  815.  
  816.             * A clarification on usage of those toggles is required as 
  817.               well; put all the door flags you want BEFORE a semi-colon,
  818.               then put the door command.  i.e. LSR;C:\DOORS\BRE... would
  819.               indicate NO LOGGING, NO STATUS UPDATE, REAL NAMES in drop
  820.               file and C:\DOORS\BRE... is the door command to be run.
  821.             
  822.             + New menu option to center/not center sub-titles, separated
  823.               from the center/not center titles (which will now only work
  824.               on the main menu titles).
  825.  
  826.             * Menus with passwords will now properly check the ACS for the
  827.               menu first, then if that passes, check the password, and if
  828.               that passes, allow the user into the menu (otherwise the
  829.               defined FALLBACK menu is processed).
  830.  
  831.             + Menu command OI to automatically change languages.  The
  832.               syntax is OI with <language> as the Options.  If <language>
  833.               does not exist, be forewarned, the user will be prompted for
  834.               a language to use (I didn't rewrite any routines, this is why
  835.               it works this way -- sorry).  Language ACS is *not* checked.
  836.             
  837.             * Added -M menu command to send short messages.  The required
  838.               parameters are user;message (input will *not* be requested if
  839.               the parameters are missing).  If the user is online (on any 
  840.               node), the message will be sent right away, otherwise it'll 
  841.               be stored in the shortmessage file.  Use for messages to
  842.               a specific user rather then to a specific node (use NM for
  843.               that).
  844.         
  845.             + New option for menus; the ability to set the input type to 
  846.               FORCED SINGLE KEY, FORCED FULL LINE and USER SETTING for each 
  847.               menu (the addition was the first listed -- it's helpful for 
  848.               menus when where you need KEYED input).
  849.  
  850.             * I rewrote part of the core menu handler to optimize for 
  851.               memory and speed.  I have tested it fairly well (-^,-/,-\) 
  852.               but let me know if there are any problems.
  853.         
  854.         DOORS
  855.  
  856.             * CHAIN.TXT now accepts the R parameter in the options field.
  857.               This format stores BOTH names, which is why it wasn't 
  858.               available before, however, some doors do not have toggles of
  859.               which to use.  Adding R will reverse the field order to enable
  860.               the SysOp to choose which is used.
  861.         
  862.         OTHER
  863.         
  864.             * Found and fixed a flush input buffer problem - this routine
  865.               was only called during shutdown, but under the right 
  866.               circumstances (RTS/CTS low), it would call a fossil function
  867.               which would lock the system up tight.
  868.  
  869.             * File copy/move routine now uses it's own internal buffer. 
  870.               It is a little slower (64K vs. 1K buffer), but will not cause
  871.               problems during file attaches, etc.
  872.  
  873.             * Fixed timeout of WFC ocmmands (so they properly abort instead
  874.               of using previously input command).
  875.  
  876.             * Language manager starts numbering at 1 to be consistent with 
  877.               the language selection prompts.
  878.  
  879.             * Telegard will check language ACS during the login process, 
  880.               and if the user does not meet the ACS, will prompt them to 
  881.               select a different language.
  882.  
  883.             * Telegard will now loop until a valid language is found at the 
  884.               language selection prompt.
  885.  
  886.             * Language .TGL will be checked for existance in the \language\ 
  887.               path before offering a language to a user for selection.  If 
  888.               it does not exist, the language is not offered.
  889.  
  890.             * At the WFC menu, local security enabled, returning from the 
  891.               shell should return the cursor to the proper position.
  892.  
  893.             * Deleting users from the WFC screen without having first gone 
  894.               into the WFC QuickMessage area should no longer result in 
  895.               error.
  896.  
  897.             + User editor search engine has been completed and added back 
  898.               to the Telegard code.  I just rewrote it instead of importing 
  899.               anything from 2.7, so *please* give it a really good run 
  900.               through.
  901.  
  902.                   (a) The text search is case insensitive
  903.                   (b) If an ACS function exists for a specific item, there
  904.                         is no duplicate option (use ACS)
  905.  
  906.               The search engine can be defined with '*'.  Once satisfied, 
  907.               you must start the engine with the start function from this 
  908.               menu.  Use '}', '{' to search forward/backward, and '/' to 
  909.               list all matching users.
  910.  
  911.             * Updated RAR archive definition -- it was incorrectly using
  912.               an external view, when Telegard itself has RAR viewing built
  913.               in.  If you previously imported the RAR definition, you can
  914.               safely blank out the view command and let Telegard handle it
  915.               (this is safer and faster!).
  916.  
  917.             + Added CAPTURE keyword to archive definitions, to coincide 
  918.               with a new feature - capture external.  The reason, is that
  919.               some people wanted to integrate seemless archive viewers into
  920.               Telegard, but prior to 3.0, Telegard was redirecting the 
  921.               output.  If you were using external viewers before and 
  922.               relying on Telegard to automatically capture the output, you
  923.               must now toggle this feature with the archive manager.
  924.  
  925.             * Since I implemented CC: and cross-posting differently than I 
  926.               originally intended, I didn't need all the memory that 
  927.               Telegard was reserving.  Subsequently, I've reduced the 
  928.               reserved memory quantity from 55K(g4) to 15K -- since only 
  929.               scripts use this memory and this should be more than enough 
  930.               for all the script variables etc. to be stored.  This will 
  931.               free more for low memory doors (use !; no swap to take 
  932.               advantage of the extra memory for these doors).
  933.  
  934.               Thus, Telegard expects ~440K in memory requirements total, 
  935.               and really only requires 425K to run (without scripts -- 
  936.               although that really *is* pushing things).
  937.  
  938.             * Semaphore directory now defaults to \tg\SEMAPHOR\
  939.  
  940.             * As requested, voting answers now have a vote tally MCI code.
  941.  
  942.             * Backspace is available during the SysOp PW input at the WFC.
  943.  
  944.             * Installation will now set NodeCheck timing to 10 seconds
  945.               instead of 0 seconds.  If your entry is set to 0 seconds,
  946.               I suggest a range from 4-15.
  947.  
  948.             + Added ForceNetmail flag to user record.  This operates the
  949.               same as the ForceEmail flag, except on netmail areas.  If
  950.               enabled, it forces the netmail to be deleted before 
  951.               continuing with any type of scan (ala Email) and also 
  952.               auto-deletes the netmail message after email.  By extension,
  953.               this flag also controls Internet Email areas.
  954.  
  955.             * Displayed files are now opened in fmRead+fmDenyNone mode 
  956.               instead of fmText mode.  Again, I've had to buffer the file
  957.               input on a file by file basis; the buffer is 128 bytes in
  958.               length (standard textfile buffer) and performance wise there 
  959.               should be no difference, but it may stop problems on OS/2 
  960.               systems and systems where the files are poorly locked.  Since
  961.               BP does not contain internal buffering I've had to write my
  962.               own little routines.  Please let me know if there are any
  963.               problems.
  964.  
  965.             * ALT-P now works from the initial ANSI/Language prompt (I was
  966.               incorrectly checking for online users, and not taking any 
  967.               input for a filename if there wasn't one, and then 
  968.               incorrectly using that non-filename for the capture file ;)
  969.  
  970.             * Telegard now opens the overlay in fmRead + fmDenyWrite mode 
  971.               instead of just fmRead mode (which can often be interpretted 
  972.               by another task as fmRead+fmDenyAll).
  973.  
  974.             * The search progress is now back in the nodelist browse (where
  975.               it got removed, I don't know).  I also added the highlighting 
  976.               of the search text as per the user browse/file area sections.  
  977.               I also fixed some RT problems I was having here -- I couldn't 
  978.               figure out why, but I'm no longer getting them . . .    
  979.  
  980.             + Added -NET command which will disable local SysOp keys so 
  981.               they can't be used.  This option should be used when allowing
  982.               network access via a lan to the system.  The command to load
  983.               (create a TELEGARD.BAT file if neccessary) would be:
  984.         
  985.                         TELEGARD -B0 -NET -Q
  986.  
  987.               which will load up in local login mode (-b0), toggle network 
  988.               mode (-NET) and quit after login (-Q).  To restrict the 
  989.               access in this manner, it may be neccessary to limit the
  990.               usage of the /telegard/ directory to a specific account login
  991.               name (i.e. "Telegard") which automatically loads in this 
  992.               manner -- but don't quote me yet, my network isn't up and 
  993.               running just yet.
  994.  
  995.             + SysOp Macros (F1..F10) are now available.  These are always
  996.               active, even when the user macros are not.  Be forewarned 
  997.               however that Telegard internally clears the buffer to ensure
  998.               user continuity, and thus, occasionally you will find the
  999.               stored keys are cleared.  See SystemConfig.SysopMacros.
  1000.  
  1001.               Added ability for the sysop macros to spawn a shell process.  
  1002.               Starting a macro with # will write the remainder of the
  1003.               macro to a batch file, which will then be executed from the
  1004.               /temp/ directory.
  1005.  
  1006.             * ~ER will trim characters from the left rather than the right
  1007.               when the field is longer than the imposed limit.  Colour
  1008.               codes may be truncated . . .
  1009.  
  1010.             * Telegard now handles highlighting text in the user browser
  1011.               differently.  Searching for 2 will not highlight colour
  1012.               codes for instance.  In addition, because of some logistically 
  1013.               problems, Telegard will search only the displayed 
  1014.               name/location for the text (if you're not displaying location 
  1015.               in your user listing, you'll have some empty highlighted users.
  1016.  
  1017.             * Because of the changes to the highlighting code, Telegard now
  1018.               uses ^K and ^N internally (Ascii 11, 14).  Since these are
  1019.               commonly control characters, they shouldn't be used in regular
  1020.               output.  But they might come in handy in scripts -- ^K stores
  1021.               the colour, and ^N restores the saved colour . . . only from
  1022.               within text displayed strings (runtime).
  1023.  
  1024.             + Added option to remove color codes from user information
  1025.               (names & address). See SystemConfig.NewUsers.KillColor.
  1026.  
  1027.             * Input fields will no longer be generated for PW/SPW areas - 
  1028.               this isn't too important, just might help a few FS login 
  1029.               designs.
  1030.  
  1031.             * ANSI/Avatar files with line lengths longer than 255 
  1032.               characters will be adjusted in an attempt to keep ANSI, and 
  1033.               to a lessor extent Avatar, sequences together; the 
  1034.               ANSI/Avatar character *must* however appear within the last 
  1035.               50 characters for speed/parsing reasons.  I've tested it with 
  1036.               long ANSI screens which used to mess up without problems . . 
  1037.               . this however is *before* MCI parsing -- if you use 
  1038.               extensive MCI expansion, Telegard does not (yet) currently 
  1039.               extend past the 255 character string restriction.
  1040.  
  1041.             * Redesigned the voting updates a little - vote updates are now 
  1042.               done on the fly if a user has not yet voted on a question; 
  1043.               based on the last voting that was done, and the 
  1044.               initialization time of the voting question.  This should (a) 
  1045.               eliminate any potential problems of 'ghost' votes (I could 
  1046.               not replicate this, but it was reported), (b) eliminate the 
  1047.               need to worry about other online nodes, (c) speed up the 
  1048.               initialization (it's only done for users as they login as 
  1049.               opposed to all users each time the question is initialized . 
  1050.               . . and probably many other facets I have yet to even 
  1051.               imagine.  This change *might* mean your users get asked to 
  1052.               vote on questions again, and quite possibly create a skewered 
  1053.               number of vote returns -- if you wish to fix that, you'll 
  1054.               have to manually (R)eset your questions in the voting 
  1055.               manager.
  1056.  
  1057.             * Added MULTIRING support (i.e. answer only on second ring, 
  1058.               etc.). This was added for future caller-ID support (which I'm 
  1059.               working on now).  If using multiring answering, then I 
  1060.               suggest you set the counter reset value to ~3-5 seconds.  
  1061.               This will prevent counter rollovers between a <ring> <hangup> 
  1062.               <ring> sequence.
  1063.  
  1064.             * I'm fairly certain that now I fixed the local-after-remote 
  1065.               login problems that the gammas were having (even though I 
  1066.               *thought* I caught it last time).  It should also stop the 
  1067.               RING etc. problems when in the quick message/file areas . . . 
  1068.               modem incoming should be disabled except for actual 
  1069.               connections, and only for the most current connection (oops).
  1070.  
  1071.             * I believe that the all the 'memory' code is now working 
  1072.               properly, included the "Used" portion of memory (which, when 
  1073.               added with "Reserved" should equal the entire program usage 
  1074.               give or take ~250 bytes).  The two of main concern are:
  1075.  
  1076.                        * Stack ~31K       * Used ~423K
  1077.  
  1078.               If stack grows too small, or used grows much bigger then 
  1079.               this, the system has problems.
  1080.  
  1081.               Telegard also needs *some* reserved memory.  If the window 
  1082.               memory is set too small ("Reserved"+"Memory" < 5K) then 
  1083.               Telegard is likely to run into problems during operation.  
  1084.               It's better to give the window at least ~10K more then is 
  1085.               actually needed -- i.e. 433K ("Used"+buffer).  The "Memory" 
  1086.               field lists memory outside of the reach of Telegard; this can 
  1087.               be used run programs when not swapping memory; if your shell 
  1088.               doesn't work, perhaps you're not giving the window enough 
  1089.               memory -- in this case, turn memory swapping on.
  1090.  
  1091.             * Local modems (comport=0) boot into local I/O only at startup; 
  1092.               if a connection (-Bnnn with nnn>0) is being loaded, the 
  1093.               connection is refused.
  1094.  
  1095.             + Added "SysOp" login to the WFC menu (provided that local 
  1096.               security is *not* enabled).  This option boots into the 
  1097.               system, but automatically loads the first user record (Record 
  1098.               1, Offset 0) from the user file . . . no name input, no 
  1099.               password input, just logged on.  Yes, it's wonderful . . . :)
  1100.  
  1101.             * WFC help (ESC) will now process commands as well -- i.e. 
  1102.               hitting ESC to see help, and hitting any valid WFC command 
  1103.               will jump directly into that command (instead of having to 
  1104.               clear the menu then hit the key) -- any invalid key will just 
  1105.               clear the help screen as will hitting ESC again.
  1106.  
  1107.             + Added TG_OPTS environment variable to hold standard command 
  1108.               line parameters (so that they are not required on the command 
  1109.               line) -- use only for global command line parameters, unless 
  1110.               using a local copy of the environment (shelled window).  
  1111.               Suggested options which can be easily included are: -EE[n], 
  1112.               -EN[n], -P, -V[n] and possibly -N[n] for those with a good 
  1113.               grasp of global/local environments and the right system 
  1114.               configuration.
  1115.  
  1116.             * SysOp logs during the login process have been updated to be a 
  1117.               little more helpful under circumstances where users are 
  1118.               forced offline (no time/no calls left), forced to change 
  1119.               passwords, etc.
  1120.         
  1121.             * SYSOP and NEW as user names will be correctly denied under 
  1122.               all circumstances now (before they were working only about 
  1123.               50% of the time).
  1124.  
  1125.             * Unix time input routines now work correctly for hours > 18.
  1126.  
  1127.             * Patched up the SHELL_TO_DOS routines, at least partially, so
  1128.               that they don't require 8K of free STACK space to work 
  1129.               properly (returning error #202, or worse, a QEMM or system
  1130.               error when returning from a dos shell).
  1131.  
  1132.             * #C acs parsing now uppercases the user comment (only internal
  1133.               to the routine) so that you can check text which isn't 
  1134.               uppercased in the sysop user comment field.
  1135.  
  1136.             + Added XN ACS for *inside* new user process (logging in).
  1137.  
  1138.             * IEMSI with blank user names will not continuously cycle 
  1139.               through the name/IEMSI sequence (i.e. it would run the IEMSI
  1140.               sequence several times -- it would, however, after 10 
  1141.               attempts hangup). Now, after the first attempt, it should 
  1142.               stop using IEMSI, and prompt for a user name (whats is the 
  1143.               point of enabling IEMSI without a username? -- ask the 
  1144.               braindead program Terminate! (my favorite of all the IEMSI 
  1145.               compatible terminal programs -- not))
  1146.  
  1147.             * Numerous cosmetic (spelling, keys, etc) fixes -- far too many
  1148.               to bother listing individually unless they are relatively
  1149.               different than previous versions in operation . . .
  1150.  
  1151.             * I rewrote some of the event code to make it a little more
  1152.               efficient.  Please report any event-related problems.
  1153.  
  1154.             * I reworked some of the ACS parsing code to improve efficiency
  1155.               in both size and speed.  Please let me know of any ACS 
  1156.               parsing problems you encounter.
  1157.  
  1158.             * Automessage line (1811) will now properly truncate at the
  1159.               width of the longest automessage line (it was incorrectly
  1160.               using 79 character or zero characters before).
  1161.  
  1162.             * Fixed up the Avatar code -- it was _supposed_ to prompt for
  1163.               ANSI fallback, and was not.  It was also not properly using
  1164.               the internal colours for Avatar mode (i.e. it was using B&W)
  1165.               and several other items were not being used properly (high
  1166.               bit for the graphs, etc.).  RIP code now asks for both ANSI
  1167.               or Avatar fallback (as it was supposed to).
  1168.         
  1169.             * While searching for the above bug, I finally decided to track
  1170.               and nail another pesky bug (since 2.7's time!) -- it would 
  1171.               cause the screen to go into CYAN mode only with TTY/Text 
  1172.               users online when certain events happened (such as entering 
  1173.               message text).  At any rate -- tracked and squashed.
  1174.  
  1175.             * Fixed a bug in the login routines, which would, if the user
  1176.               hungup at the name prompt, cause the current user to be 
  1177.               filled with random 'garbage', resulting in the log routines
  1178.               reading that garbage and seeing the 'trap activity' flag, and
  1179.               thus creating SysOp logs with garbage ID's and garbage data.
  1180.  
  1181.             * Fixed a bug (found while testing above) of newly created
  1182.               separate logs missing a slew of logging information because 
  1183.               of an unprocessed file close.
  1184.  
  1185.             * ANSI/Avatar files with line lengths of 254 + CR would cause
  1186.               Telegard to incorrectly wrap the text -- fixed.  This *should*
  1187.               be all of the ANSI/Avatar problems fixed!
  1188.  
  1189.             * The "current" language attributes are used for the VL/VM mci
  1190.               codes.  The "default" language filename for the online user
  1191.               is stored in VV.  This will normally be identical to VM, 
  1192.               except if the login language feature is used.  The default
  1193.               and current languages are now shown in the SysOp window as
  1194.               well.
  1195.  
  1196.             * Fixed login with name;password combination -- if the phone
  1197.               numbers were included, there was no problem -- but a 
  1198.               name;password login would prompt again for a password.
  1199.     
  1200.             + Option to use TASK= environment variable for node number if
  1201.               -Nnnn is not passed on the command line.  Set to YES if you
  1202.               have each task/node with a different TASK= environment 
  1203.               setting and want to use that as the default node for that 
  1204.               task (also take out references to -Nnnn from your command 
  1205.               lines since that parameter will be used first if found).
  1206.  
  1207.             * The casino will display the dealer cards if the player
  1208.               has Blackjack -- before it would just end.
  1209.  
  1210.             + Geographic region (U.S./Canada/International) can now be 
  1211.               forced to one of the aforementioned types - this is 
  1212.               especially helpful for systems which cater to entirely local 
  1213.               audiences (community systems for instance), and especially to 
  1214.               international sites.
  1215.  
  1216.             * Windows 4.0 (aka 95) will now be reported as Windows 95 -- 
  1217.               obviously this only applies when running in GUI mode, 
  1218.               otherwise it looks and operates just like DOS (7.00).
  1219.  
  1220.             * Re-enabled toggle for global activity trapping (it was an 
  1221.               overlooked toggle even though the field has existed since 
  1222.               2.7). It's now item P on the Config.BBSConfig menu.
  1223.  
  1224.             * ALT_N (line noise) has been removed.
  1225.  
  1226.             * I rewrote the macro handling routines; they now allow macros
  1227.               to be "stacked" instead of wiping out any previous macro, or
  1228.               waiting for the previous macro to finish.  This was done to
  1229.               remove some unrequired code -- please let me know if it has
  1230.               any side effects.
  1231.  
  1232.             * During nightly maintenance, .SWP files in the /swap/ directory
  1233.               that are older than 2 days will be automatically purged.  If
  1234.               any active window is open for more than two days, tough.  
  1235.               This much has been added -- now I just need a way to ensure 
  1236.               the files are always "*.SWP" files (they aren't right now).
  1237.  
  1238.             * I started bracing the system for a change to 4 character YEAR
  1239.               fields (required for >2000 to work properly).  Some fields 
  1240.               already use the expanded 4 character year, all input fields
  1241.               still use 2 characters, although all the code is in place for
  1242.               4 character date fields for post-3.0 (file formats will need
  1243.               to be updated).  QWK code now always uses the logic if the
  1244.               date < 1970 after conversion, that it's actually date+100 
  1245.               (i.e. 1901 => 2001, 1969 => 2069, 1970 = 1970 etc.).
  1246.  
  1247.             * In the process of doing the above, I may have fixed the 
  1248.               post-birthday happy birthday code, which was unlikely to ever
  1249.               execute.
  1250.  
  1251.             * If the user does not meet the graphics requirements (minimum 
  1252.               graphics bps) during login, they will automatically be reset 
  1253.               to text only.
  1254.  
  1255.             * I have done a rather lengthy run through of several commands
  1256.               and updated the variables that they use.  This was in order 
  1257.               to reduce the stack usage due to local variables during any
  1258.               given procedure.  I'm hoping that that I didn't blindly break 
  1259.               anything -- if you experience problems, let me know . . .
  1260.  
  1261.             * While doing the above stack usage optimization, I had to 
  1262.               rework the SysOp window routines (mainly to get rid of the
  1263.               8k (80*50*2) screen image).  I'm using insert/delete options
  1264.               of the BIOS/etc. so let me know if there are any problems.
  1265.               Mike: I was unable to find the offending code that leaves
  1266.               your cursor sitting at 1,1 after a door swap -- still trying.
  1267.  
  1268.             * WFC menu now obeys Hardware.Mono setting - some of the menu
  1269.               commands were not before.  In addition, the SysOp side info
  1270.               windows now obey this setting as well.
  1271.  
  1272.             * Automessage will truncate at 79 characters, instead of using
  1273.               80 (standard screen width), since most terminals autowrap and
  1274.               cause an extra <CR>.
  1275.  
  1276.             * IEMSI software information will now be purged to just 
  1277.               software name & revision, rather then including the serial/
  1278.               extra information as well [oft used for software bragging 
  1279.               (.terminate.), something that I despise].
  1280.  
  1281.             * Keyboard input at some point had the added bonus of clearing
  1282.               out the screen line count; any key pressed during the 
  1283.               execution would be parsed, and if it wasn't an abort key would
  1284.               accidentally reset the screen line count.  This will fix 
  1285.               amung other things message title scans going longer than a
  1286.               page, user listing not pausing, nodelisting not pausing, etc.
  1287.  
  1288.             * The WFC will now load the user language used by the "wfc"
  1289.               user record (Record 1, Offset 0 = SysOp).  Thus the WFC
  1290.               Message/File will use the SysOp's language of choice.
  1291.  
  1292.             * The login sequence (before the Telegard version information),
  1293.               will load the default NewUser language, and thus pull the 
  1294.               ANSI/name prompts from that language instead of the language
  1295.               already loaded (the first language loaded for -Bn connected
  1296.               calls, and the last active language for WFC answered calls).
  1297.  
  1298.